home *** CD-ROM | disk | FTP | other *** search
/ Revolution - Das Atari CD Magazin 1997 / Revolution - Das Atari CD Magazin 1.iso / software / anwendng / utility / iprn2d / liesmich.txt < prev    next >
Text File  |  1996-05-11  |  11KB  |  244 lines

  1. iPRN II  (C) Peter Missel 1994-96
  2.  
  3. "Gähn, schon wieder ein Beschleuniger für die Druckausgabe!"
  4.  
  5. Jawohl, schon wieder einer. Aber einer mit Statusüberwachung per Interrupt.
  6. Und ein richtig schneller noch dazu. Fast 40fache Beschleunigung
  7. gegenüber TOS kann erreicht werden.
  8.  
  9. "Und was heißt das, Statusüberwachung?"
  10.  
  11. Nun, ganz einfach: Zusätzlich zur bei Druckbeschleunigern üblichen 
  12. Beschleunigung des Druckens kann iPRN unterscheiden, ob der Drucker 
  13. nur beschäftigt oder in einem Fehlerzustand ist (offline, ausgeschaltet, 
  14. kein Papier, nicht angeschlossen...). So weiß das System im voraus, ob es 
  15. möglich ist, Zeichen an den Drucker zu senden oder nicht.
  16. Dadurch entfällt die lästige Gedenkminute, wenn man drucken will und 
  17. der Drucker nicht bereit ist. Die Fehlermeldung erscheint sofort.
  18.  
  19.  
  20. iPRN II ist Shareware. Die Demoversionen (Programmdatei IPRN2D.PRG,
  21. Versionsnummer 2-xx statt 2.xx) können frei verbreitet werden. Nur das
  22. vollständige und unveränderte Paket IPRN2xxD.LZH darf weitergegeben werden.
  23.  
  24.  
  25. Einschränkungen der Demoversion:
  26. - Die GEMDOS-Beschleunigung wirkt nur beim ersten Ausdruck.
  27. - Die Statusüberwachung funktioniert pro Sitzung nur einmal:
  28.   Wenn der Drucker einmal Offline war und wieder Online gesetzt
  29.   wird, deaktiviert sich die Statusüberwachung selbst. Dann läuft
  30.   alles normal weiter, nur halt wieder mit Gedenkminute bei Druckerfehler.
  31.   Die Beschleunigungswirkung bleibt erhalten.
  32. - Kein Kontrollfeldmodul:
  33.   - Timeouts nicht konfigurierbar
  34.   - Statusüberwachung nicht abschaltbar (schaltet sich sowieso von selber ab)
  35.   - keine Deskjet-Weckfunktion
  36.  
  37. Die registrierten Versionen 1.00 und höher kosten in Deutschland DM 25,-
  38. und US$ 20 im Ausland.
  39.  
  40.  
  41. Registrierung
  42. =============
  43. DM 25,- / US$ 20 überweisen an:
  44.  
  45. Peter Missel, Stadtsparkasse Augsburg, BLZ 72050000, Kto. 1301522.
  46. Als Verwendungszweck "iPRN Vorname Nachname" angeben.
  47.  
  48. UK: Scheck oder Postal Order über 13 Pounds Sterling, zahlbar an 
  49. Denesh Bhabuta, senden an:
  50.  
  51. CyberSTrider,
  52. 203 Parr Lane,
  53. Unsworth,
  54. Bury,
  55. Lancashire,
  56. BL9 8JW
  57.  
  58. Bitte nicht vergessen, Name und Adresse anzugeben.
  59.  
  60. Denesh kann auch über E-mail erreicht werden:
  61. dbhabuta@cix.compulink.co.uk
  62. danny@micros.hensa.ac.uk
  63.  
  64. Zur eindeutigen Identifizierung zusätzlich eine Postkarte schicken an:
  65. Peter Missel, Greiffstraße 11, 86157 Augsburg, Deutschland.
  66.  
  67. Oder eMail an Peter Missel @ A im Mausnetz.
  68. (Peter_Missel@a.maus.de für Benutzer anderer Netze)
  69. Bitte auch hier die vollständige Postadresse angeben.
  70.  
  71.  
  72. Wirkung (Zeichen pro Sekunde)
  73. =============================
  74.                                 BIOS               GEMDOS
  75. Rechner                         ohne  mit iPRN       ohne  mit iPRN II
  76. ----------------------------------------------------------------------
  77. ST, 8 MHz, TOS 2.06             1800  13500          1650  64500
  78. ST, 16 MHz, TOS 1.04            3200  >17200
  79. Falcon030, TOS 4.04             3500  bis 36100 *    2930  >115000
  80. Falcon030, TOS 4.04, Bild aus   4500  bis 39370 *          >115000
  81. Falcon030/32 MHz, Bild aus      4800  bis 39370 *          >115000
  82. TT030 ohne FastRAM, TOS 3.06    5600  bis 34100 *
  83. TT030 mit FastRAM, TOS 3.06       ?   bis 41000 *           >72000
  84.  
  85. (Die "größer als"-Werte sind aus Benchmarks, bei denen der Rechner schneller
  86. senden konnte, der Drucker aber nicht schnell genug war.)
  87.  
  88. * Bei 68030-Rechnern schwanken die BIOS-Meßwerte mit der Lage von
  89.   Treiber und Software im CPU-Cache. Im schlechtesten Fall erhält man
  90.   etwa 20% weniger Durchsatz, "normal" etwa 5% weniger als die angegebenen
  91.   Maximalwerte.
  92.   Die GEMDOS-Druckroutine in iPRN II paßt jedoch komplett in den Cache,
  93.   so daß die angegebenen Werte meistens ungefähr erreicht werden.
  94.  
  95.  
  96. Installation 
  97. ============
  98. IPRN2.PRG gehört in den AUTO-Ordner, und zwar so weit hinten wie möglich. 
  99. MiNT-Anwender müssen es vor MINT.PRG (oder MINTNP.PRG) in den AUTO-Ordner
  100. stecken. 
  101. Die Demoversion fordert beim Systemstart die Eingabe "iPRN II<Return>".
  102. Andernfalls installiert sie sich nicht. (Achtung Grafikkartenbesitzer:
  103. Wenn kein Programm installiert ist, das die Textausgaben der Bootphase
  104. auf die Grafikkarte umleitet, muß die Eingabe ohne Sichtkontrolle erfolgen.)
  105.  
  106. IPRN2.CPX ist das Kontrollfeldmodul und gehört in den Ordner, in dem die
  107. schon vorhandenen Moduln auch schon sind. Normalerweise ist das C:\CPX\.
  108. Es ist allerdings nur in der registrierten Version dabei.
  109.  
  110.  
  111. Bedienung
  112. =========
  113. An IPRN2.PRG gibt es nichts zu bedienen. Es wird im AUTO-Ordner automatisch
  114. gestartet und installiert sich. Falls die Installation unmöglich ist, wird
  115. eine Fehlermeldung ausgegeben: "already installed" oder "Printer port
  116. already in use", wenn das Programm bereits installiert ist bzw. wenn bereits
  117. ein anderes Programm den Interrupt der Druckerschnittstelle belegt hat.
  118.  
  119. Das Kontrollfeld-Modul dient zur Konfiguration des Programms:
  120. - "Offline Timeout" ist die maximale Zeit in Sekunden, die vor dem Absenden 
  121.   eines Zeichens gewartet wird, bevor der Drucker für abwesend erklärt und 
  122.   eine Fehlermeldung erzeugt wird.
  123. - "End-of-job delay" ist die Zeit, die nach dem letzten gedruckten Zeichen
  124.   verstreichen muß, bevor die Zustandsüberwachung wieder wirksam wird.
  125. - "Printer state watchdog": Zustandsüberwachung des Druckers per Interrupt.
  126.   Kann jederzeit an- und ausgeschaltet werden. Ausschalten empfiehlt sich
  127.   vor der Benutzung eines Programms, das selbst die Hardware direkt benutzt.
  128. - Nebenbei kann man durch Druck auf "OK" oder "Save" auch eingeschlafene
  129.   Deskjets wieder zum Leben erwecken.
  130.  
  131. Das Kontrollfeldmodul ist nur in den registrierten Versionen enthalten;
  132. in den Demoversionen ist "Offline Timeout" auf 45, "End-of-job delay" auf 2
  133. Sekunden fest eingestellt, und der "Printer state watchdog" deaktiviert sich
  134. nach dem ersten Druckerfehler von selbst.
  135.  
  136.  
  137. Die erwünschten Nebenwirkungen von iPRN II sind:
  138.  
  139. - Die Erzeugung des STROBE-Signals funktioniert unabhängig von der 
  140.   Geschwindigkeit des Rechners. Auch Besitzer ultraschneller Geräte 
  141.   jenseits des TT können iPRN II benutzen.
  142.  
  143. - Auch bei der Hardcopy entfällt die lästige Pause bei abwesendem Drucker. 
  144.   Der Druckvorgang wird auch hier beschleunigt.
  145.  
  146. - Beim Reset des Rechners wird statt eines undefinierten Müllzeichens 
  147.   ein definiertes Müllzeichen gesendet, nämlich ein Nullbyte. 
  148.   Daß es gesendet wird, ist im TOS so festgenagelt (zumindest bis TOS 1.04) 
  149.   und läßt sich nicht vermeiden.
  150.  
  151.  
  152. Unerwünschte Nebenwirkungen:
  153.  
  154. - Programme, die die Druckausgabe direkt auf die Hardware machen (anstatt 
  155.   über GEMDOS oder BIOS), lösen damit pro Byte zwei Interrupts aus, was 
  156.   _diese_ Druckvorgänge langsamer macht als vorher. (Aber zum Glück nicht 
  157.   viel.) Das betrifft allerdings auch nur solche Oldies wie Calamus 1.x 
  158.   oder Signum!Zwei. (Zu letzterem gibt es ein Update, das diesen Mangel
  159.   behebt.) Besitzer einer registrierten Version von iPRN II können 
  160.   vor dem Ausdruck mit solchen Programmen die Druckerstatusüberwachung 
  161.   über das Kontrollfeld deaktivieren.
  162.  
  163. - Schließlich berücksichtigen viele Programme nicht, daß die Zeichenausgabe- 
  164.   funktion des BIOS einen Fehlercode zurückliefert, so daß man den Drucker 
  165.   nicht während des Drucks offline schalten kann. iPRN II ignoriert deswegen
  166.   den Offline-Zustand innerhalb 2 Sekunden nach dem letzten gesendeten 
  167.   Zeichen (in den registrierten Versionen konfigurierbar).
  168.   Spätestens nach dem "großen" Timeout (normalerweise 45 Sekunden, 
  169.   in der registrierten Version konfigurierbar) gehen dann trotzdem Zeichen 
  170.   verloren, und der Ausdruck bekommt ein paar Spezialeffekte dazu.
  171.   Das passiert allerdings auch mit der normalen Druckfunktion des TOS 
  172.   und hat mit iPRN II nichts zu tun.
  173.  
  174. - Auch die Rückgabewerte der GEMDOS-Funktionen werden längst nicht von
  175.   allen Programmen beachtet oder gar korrekt behandelt.
  176.   
  177.   
  178. Kontraindikationen:
  179.  
  180. - Nicht anwenden bei hardwaremäßiger Inkompatibilität des Druckerausgangs, 
  181.   etwa bei GEMulator- oder JANUS-Steckkarten für DOS-PCs oder Mag!C Mac.
  182.  
  183. ==============================================================================
  184.  
  185. Für die Techniker: iPRN II hängt im BIOS-Trap (mit XBRA-Kennung "iPRN") 
  186. und fängt Bconout( 0, ... ) und Bcostat( 0 ) ab. Mit der gleichen Kennung 
  187. installiert es sich im GEMDOS-Trap und fängt den Drucker betreffende Aufrufe
  188. von Fcreate, Fopen, Fclose, Fwrite, Fdup und Fforce ab. Zusätzlich installiert
  189. es sich in den Vektoren xconout0, xcostat0, prv_lst, prv_lsto und resvector. 
  190. Es aktiviert und benutzt MFP Interrupt I0. Ein Cookie "iPRN" wird eingetragen, 
  191. dessen Wert ein Zeiger auf Konfigurationswerte ist; diese wiederum können mit 
  192. dem Kontrollfeldmodul verändert werden. (Nur in den registrierten Versionen.)
  193.  
  194. Verbesserungen im Verhalten der einzelnen Funktionen gegenüber TOS:
  195. Bcostat( 0 ) liefert auch mitten im Druckvorgang einen aussagekräftigen Wert,
  196. weil unterschieden wird, ob der Drucker wegen eines gerade gesendeten 
  197. Zeichens busy ist, oder von sich aus die BUSY-Leitung gesetzt hat (etwa weil 
  198. ein Fehler aufgetreten ist oder der Drucker offline geschaltet ist).
  199. Das Ergebnis ist wie gewohnt -1 für "ready" und 0 für "not ready", nur daß 
  200. ein gewöhnlicher Busy-Zustand auch als "ready" gemeldet wird.
  201.  
  202. Fopen, Fcreate und Fdup liefern EDRVNR, wenn der Drucker nicht bereit ist.
  203.  
  204. Fwrite liefert im Gegensatz zur Originalfunktion die tatsächlich gedruckte
  205. Anzahl Bytes. Im Fehlerfall kann das durchaus weniger sein als die übergebene
  206. Menge. Die Originalfunktion liefert immer letztere als Ergebnis, egal, ob sie
  207. die Daten tatsächlich gedruckt hat oder nicht. Korrekterweise muß ein Anwender-
  208. programm also mehrere Fälle unterscheiden:
  209. - Der Rückgabewert ist positiv und gleich der übergebenen Datenmenge.
  210.   In diesem Fall ist alles in Ordnung.
  211. - Der Rückgabewert ist positiv, aber kleiner als die zu druckende Anzahl Bytes.
  212.   Das Programm muß den Benutzer informieren und ggf. die restlichen Daten
  213.   nochmal mittels Fwrite absetzen.
  214. - Der Rückgabewert ist negativ. Es wurde kein Byte gedruckt, und der Wert
  215.   ist ein GEMDOS-Fehlercode, üblicherweise EDRVNR. Die Reaktion des 
  216.   Anwenderprogramms ist die gleiche wie vor, nur daß der ganze Block nochmals
  217.   gesendet werden muß.
  218.  
  219. ==============================================================================
  220.  
  221. Dank geht an:
  222.  
  223. Thomas Fladerer (mein mutiges Dauer-Versuchskaninchen)
  224.  
  225. Die Betatester: Franz Blaha, Thomas Fladerer, Robert Federle, Andreas Kohout,
  226. Heinz Lütkebohmert, Michael Nolte.
  227.  
  228. Die unfreiwilligen Tester: Werner Deinböck, Mathias Donat, Michael Ruge,
  229. Walter Vieser.
  230.  
  231. Atari für die Hardware-Dokumentation, einige kleine Codefetzen zum 
  232. Thema Interrupthandling und Programmstart, und die Tools zum Erzeugen
  233. von Kontrollfeld-Moduln;
  234.  
  235. Harun Scheutzow für Beistand im Ringen gegen die Zicken des MFP;
  236.  
  237. Julian F. Reschke fürs geduldige Verwalten der XBRA-Liste.
  238.  
  239. Besonderer Dank an Thomas Fladerer, Andreas Kohout und Michael Kunert, 
  240. die mir ihre Drucker samt Tinte öfters mal geborgt haben.
  241.  
  242.  
  243. Peter Missel, im Mai 1996
  244.